Embodiments of the present invention relate to ontologies, and more specifically to techniques for automatically generating queries for querying ontologies.
With the advent of semantic technologies, the importance of ontologies and semantic query languages has grown manifold. An ontology is a formal representation of knowledge. An ontology is a formal representation of a set of concepts within a domain and relationships between the concepts. Ontologies are being used in several different areas including business analytics, enterprise systems, artificial intelligence and the like, and have and the potential to be used in several other fields and applications.
An ontology is typically encoded using an ontology language. Several ontology languages are available. The OWL Web Ontology Language has become the industry standard for representing web ontologies. OWL can be used to explicitly represent the meaning of terms in vocabularies and the relationships between the terms. OWL thus provides facilities for expressing meaning and semantics that goes far beyond the capabilities of languages such as XML. OWL is being developed by the Web Ontology Working Group as part of the W3C Semantic Web Activity. Further information related to OWL may be found at the W3C website.
An ontology may be persisted in memory such as in a database. There are several standard ways of querying and manipulating the data in an ontology using query languages such as RDQL (Resource Description Format Query Language), OWL-QL, SPARQL (SPARQL Protocol and RDF Query Language), and others. Among the ontology query languages, SPARQL is quickly becoming the de facto industry standard.
In order to query an ontology using SPARQL, a user has to first form a SPARQL query which may then be used to query the ontology. For example, current semantic information systems require users to formulate queries directly in SPARQL and then apply the queries to an ontology. End-user SPARQL query formulation is however quite complex given that the user needs to clearly understand the underlying ontological structure (which many application users do not have access to). Additionally, the SPARQL syntax is fairly intricate—this further complicates SPARQL query generation and puts an added burden on the end user. Accordingly, the formulation of ontology queries such as SPARQL queries is difficult and complicated and presents a significant hurdle in the widespread adoption of ontologies.